package backed.service;

import backed.entity.EcoBehavior;
import java.time.LocalDate;
import java.util.List;
import java.util.Map;

public interface BehaviorService {
    /**
     * 获取用户环保数据统计信息
     * @param userId 用户ID
     * @return 包含总减碳量、总积分和各行为类型统计的Map
     */
    Map<String, Object> getStatistics(Long userId);
    
    /**
     * 记录环保行为
     */
    EcoBehavior record(Long userId, String behaviorType, Long value);
    
    /**
     * 获取环保行为趋势数据
     * @param userId 用户ID
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @return 按日期分组的减碳量和碳积分数据列表
     */
    List<Map<String, Object>> trend(long userId, LocalDate startDate, LocalDate endDate);
    
    /**
     * 获取碳积分排行榜
     * @param type 排行榜类型：daily/weekly/monthly/all
     * @param limit 返回数量限制
     * @return 排行榜数据列表
     */
    List<Map<String, Object>> getRanking(String type, int limit);
}
